A fixedpoint approach to (co)inductive and (co)datatype definitions
نویسنده
چکیده
This paper presents a fixedpoint approach to inductive definitions. Instead of using a syntactic test such as “strictly positive,” the approach lets definitions involve any operators that have been proved monotone. It is conceptually simple, which has allowed the easy implementation of mutual recursion and iterated definitions. It also handles coinductive definitions: simply replace the least fixedpoint by a greatest fixedpoint. The method has been implemented in two of Isabelle’s logics, zf set theory and higher-order logic. It should be applicable to any logic in which the Knaster-Tarski theorem can be proved. Examples include lists of n elements, the accessible part of a relation and the set of primitive recursive functions. One example of a coinductive definition is bisimulations for lazy lists. Recursive datatypes are examined in detail, as well as one example of a codatatype: lazy lists. The Isabelle package has been applied in several large case studies, including two proofs of the Church-Rosser theorem and a coinductive proof of semantic consistency. The package can be trusted because it proves theorems from definitions, instead of asserting desired properties as axioms. Copyright c © 2010 by Lawrence C. Paulson ∗J. Grundy and S. Thompson made detailed comments. Mads Tofte and the referees were also helpful. The research was funded by the SERC grants GR/G53279, GR/H40570 and by the ESPRIT Project 6453 “Types”.
منابع مشابه
Foundational (Co)datatypes and (Co)recursion for Higher-Order Logic
We describe a line of work that started in 2011 towards enriching Isabelle/HOL’s language with coinductive datatypes, which allow infinite values, and with a more expressive notion of inductive datatype than previously supported by any system based on higher-order logic. These (co)datatypes are complemented by definitional principles for (co)recursive functions and reasoning principles for (co)...
متن کاملExtensible Object-oriented Data Models in Isabelle/HOL
We present an extensible encoding of object-oriented data models into higher-order logic (HOL). Our encoding is supported by a datatype package that enables the use of the shallow embedding technique to object-oriented specification and programming languages. The package incrementally compiles an object-oriented data model, i. e., a class system, to a theory containing object-universes, constru...
متن کاملBi-inductive structural semantics
We propose a simple order-theoretic generalization, possibly non monotone, of settheoretic inductive definitions. This generalization covers inductive, co-inductive and bi-inductive definitions and is preserved by abstraction. This allows structural operational semantics to describe simultaneously the finite/terminating and infinite/diverging behaviors of programs. This is illustrated on gramma...
متن کاملExtracting Proofs from Tabled Proof Search
We consider the problem of model checking specifications involving co-inductive definitions such as are available for bisimulation. A proof search approach to model checking with such specifications often involves state exploration. We consider four different tabling strategies that can minimize such exploration significantly. In general, tabling involves storing previously proved subgoals and ...
متن کاملWell-Founded Sized Types in the Calculus of (Co)Inductive Constructions
Type-based termination is a mechanism for ensuring termination and productivity of (co)recursive definitions [4]. Its main feature is the use of sized types (i.e. types annotated with size information) to track the size of arguments in (co)recursive calls. Termination of recursive function (and productivity of corecursive functions) is ensured by restricting recursive calls to smaller arguments...
متن کامل